package wrapclass;
/*
* JDK1.5新特性
*   自动拆箱
*   自动装箱:将基本类型自动转换为对应的基本类型包装类
* */
public class WrapClassDemo03 {
    public static void main(String[] args) {
        method01();
        method02();
        method03();    // 一开始 i 是引用类型变量，但是要运算，所以现在拆箱，最后算完后是基本数据类型
                       // 从基本类型到引用类型需要装箱
    }
    private static void method03() {
        Integer i = 13; // 装箱 Integer i = Integer.valueof(13);
        // Integer i = new Integer(13);
        i+=3; // i = i+3;
        // i+3; => 拆箱：i.intValue() => 13+3=16;
        // 将16转换为对应的包装类(装箱)：i = Integer.valueof(16)
        // 也相当于 i = new Integer(16);
    }

    private static void method02() {
        int i = new Integer(25);
        System.out.println(i); // 一个对象给了一个基本类型，通常都是对象赋值给一个引用类型
        //底层相当于 int i = new Integer(25).intValue()  自动拆箱
    }

    private static void method01() {
        Integer I = new Integer(3);
        Integer I1 = 11;  // 基本类型赋值给引用类型 ，
        // 底层代码相当于 Integer i2 = Integer.valueof(11);
        // 相当于Integer i2 = new Integer(11); // 自动装箱
    }
}
